package com.huoyun.order.dao;

import java.util.List;

import com.huoyun.base.dao.BaseDao;
import com.huoyun.order.bean.Order;
import com.huoyun.order.dao.evt.GetOrderForIndexEvt;
import com.huoyun.order.dao.evt.QueryOrderListEvt;
import com.huoyun.order.model.OrderIndexModel;
import com.huoyun.order.model.OrderLightModel;

public interface OrderDao extends BaseDao<Order> {

	public long saveOrder(Order order);
	
	public void update(Order order);
	
	public void updateOrderStatus(long orderId, int status);
	
	public long queryOrderCount(QueryOrderListEvt queryAnnoucemnetPageEvt);
	
	public String queryOrderMoney(QueryOrderListEvt queryOrderListEvt);
	
	public List<Order> queryList(QueryOrderListEvt queryOrderListEvt);
	
	/**
	 * 查询货物关联的订单信息
	 * @param cargosOwnerId 货物拥有者id
	 * @param cargosId 货物id
	 * 
	 * @author 刘晓宁
	 * @return 订单信息列表
	 */
	public List<Order> queryOrders(long cargosOwnerId, long cargosId);
	
	/**
	 * 删除订单，这里只是将订单的状态标示为：999（标示删除）
	 * @param orderId 订单id
	 * @return 
	 * 
	 * @author 刘晓宁
	 */
	public void deleteOrder(long orderId);
	
	public Order getOrderById(long orderId);
	
	public void delete(long orderId);
	
	public long getCountByDay(String dateStr);
	
	/**
	 * 获取轻量型order，不包含User信息，OrderLightModel包含货物信息，订单信息，车辆信息
	 * @param queryOrderListEvt
	 * @return
	 * @author yang
	 */
	
	public List<OrderLightModel> queryLightModels(QueryOrderListEvt queryOrderListEvt);
	
	/**
	 * 首页获取正在交易信息 
	 * @author yang
	 */
	public List<OrderIndexModel> getOrderForIndex(GetOrderForIndexEvt evt);
}
